package com.condominio.backbean;

import java.util.List;

import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;
import javax.servlet.http.HttpSession;

import org.richfaces.component.Row;

import com.condominio.facade.Facade;
import com.condominio.model.Pessoa;

public class PessoaBean {

	private Pessoa pessoa=new Pessoa();
	private Facade fachada=Facade.getInstance();
	//pegar o cara logado
	private Pessoa logado=new Pessoa();
	//redefinir url//usado pra escolher a pasta certa
	private String urlPriv;
	//chamar panel pra atualizar
	//private int rowAtual;
	
	
/*	public int getRowAtual() {
		return rowAtual;
	}

	public void setRowAtual(int rowAtual) {
		this.rowAtual = rowAtual;
	}
*/
	public Pessoa getPessoa() {
		return this.pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public Pessoa getLogado() {
		return logado;
	}

	public void setLogado(Pessoa logado) {
		this.logado = logado;
	}

	public String getUrlPriv() {
		return urlPriv;
	}

	public void setUrlPriv(String urlPriv) {
		this.urlPriv = urlPriv;
	}


	

	//metodos
	public String login(){
		if(getLogado().getLogin().equals("")||getLogado().getSenha().equals(""))return "erro";
		Pessoa pes=fachada.login(logado);
		if(pes==null)return "erro";
		else{
			logado=pes;
			HttpSession s=(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
			s.setAttribute("logado", logado);
			if(logado.getPrivilegio()==Pessoa.USUARIO){
				urlPriv="condomino";
				return "usuario";
			}
				urlPriv="admin";
				return "administrador";
		}

	}
	public String logout(){
		//sera q e preciso?
		logado=new Pessoa();
		HttpSession s=(HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
		s.invalidate();
		return "login";
	}



//crud
	
	public List<Pessoa> getListaPessoas() {
		return fachada.findAllPessoa();
	}


	public String cadastrarPessoa(){
		String s;
		if(fachada.cadastrarPessoa(this.getPessoa()))
			s="sucesso";
		else 
			s= "erro";
		atualizaVisao();
		return s;
	}
	public void excluirPessoaActionListener(ActionEvent event){
		pessoa=(Pessoa)event.getComponent().getAttributes().get("pessoaRow");
	//	rowAtual=(Integer)event.getComponent().getAttributes().get("rowAtual");
		fachada.excluirPessoa(this.getPessoa());
		atualizaVisao();

	}
	public void atualizarSenha(){
		fachada.atualizarPessoa(getLogado());
		
	}
	public void atualizarPessoa(){
		fachada.atualizarPessoa(getPessoa());
		atualizaVisao();
	}
//outros metodos
	public void atualizaVisao() {
		pessoa=new Pessoa();
		
	}
	public void atualizarPessoaActionListener(ActionEvent event){
		pessoa=(Pessoa)event.getComponent().getAttributes().get("pessoaRow");
		//rowAtual=(Integer)event.getComponent().getAttributes().get("rowAtual");
	}
	




}
